/*
 This file is part of Darling.

 Copyright (C) 2017 Lubos Dolezel

 Darling is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 Darling is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with Darling.  If not, see <http://www.gnu.org/licenses/>.
*/


#ifndef _DataDetectorsCore_H_
#define _DataDetectorsCore_H_

#import <Foundation/Foundation.h>

#import <DataDetectorsCore/DDTypeCheckerDelegate.h>
#import <DataDetectorsCore/DataDetectorsSourceAccessProtocol.h>
#import <DataDetectorsCore/DDBindableRegexp.h>
#import <DataDetectorsCore/DDBasicRegexp.h>
#import <DataDetectorsCore/DDVariable.h>
#import <DataDetectorsCore/DDOperatorRegexp.h>
#import <DataDetectorsCore/DDDisjunctionRegexp.h>
#import <DataDetectorsCore/DDConcatenationRegexp.h>
#import <DataDetectorsCore/DDUnaryOperator.h>
#import <DataDetectorsCore/DDOneOrMoreExp.h>
#import <DataDetectorsCore/DDRepeatCount.h>
#import <DataDetectorsCore/DDRepeatMax.h>
#import <DataDetectorsCore/DDOptionalExp.h>
#import <DataDetectorsCore/DDStarExp.h>
#import <DataDetectorsCore/DDRepeatMinMax.h>
#import <DataDetectorsCore/DDAtomicRegexp.h>
#import <DataDetectorsCore/DDTokenRegexp.h>
#import <DataDetectorsCore/DDLookupRegexp.h>
#import <DataDetectorsCore/DDErrorRegexp.h>
#import <DataDetectorsCore/DDVariableNotFoundError.h>
#import <DataDetectorsCore/DDEmptyPatternError.h>
#import <DataDetectorsCore/DDInvalidRangeError.h>
#import <DataDetectorsCore/DDDictionaryError.h>
#import <DataDetectorsCore/DDBinderInfo.h>
#import <DataDetectorsCore/DDScannerObject.h>
#import <DataDetectorsCore/DDScannerList.h>
#import <DataDetectorsCore/DDScanServerDispatcher.h>
#import <DataDetectorsCore/DDScanServer.h>
#import <DataDetectorsCore/DDRegexpManager.h>
#import <DataDetectorsCore/DDScannerResult.h>
#import <DataDetectorsCore/DDGrammar.h>
#import <DataDetectorsCore/DDSymbol.h>
#import <DataDetectorsCore/DDNonTerminal.h>
#import <DataDetectorsCore/DDProduction.h>
#import <DataDetectorsCore/DDLocation.h>
#import <DataDetectorsCore/DDCompilationNote.h>
#import <DataDetectorsCore/DDParserState.h>
#import <DataDetectorsCore/DDStatsBuilder.h>
#import <DataDetectorsCore/DDCompilerState.h>
#import <DataDetectorsCore/DDLRItem.h>
#import <DataDetectorsCore/DDAbstractType.h>
#import <DataDetectorsCore/DDTypeInhabitant.h>
#import <DataDetectorsCore/DDTypeChecker.h>
#import <DataDetectorsCore/DDMessageCacheElement.h>
#import <DataDetectorsCore/DDMessageCache.h>
#import <DataDetectorsCore/DataDetectorsSourceAccess.h>

void* DDAddressBookAccessAllowed(void);
void* DDAddressResultCanBeMergedWith(void);
void* DDApplyOptions(void);
void* DDCacheCopyStatsDescription(void);
void* DDCacheCreateWithSubTable(void);
void* DDCacheSetTemporaryDirectory(void);
void* DDCacheWriteAtPath(void);
void* DDCacheWriteWithSuffix(void);
void* DDCalendarAccessAllowed(void);
void* DDCopyPunycodedWebURLString(void);
void* DDCrash(void);
void* DDCreateDataFromFileAtPath(void);
void* DDCreateDataFromFileAtUrl(void);
void* DDCreateRelatedResultsArray(void);
void* DDCreateTimeZoneValuesFromResultValue(void);
void* DDDFACacheCreateFromBundle(void);
void* DDDFACacheCreateFromFramework(void);
void* DDDFAScannerCopyResults(void);
void* DDDFAScannerCreateFromCache(void);
void* DDDFAScannerEmitResult(void);
void* DDDFAScannerFirstResultInUnicharArray(void);
void* DDDFAScannerGetCFTypeID(void);
void* DDDFAScannerReset(void);
void* DDDFAScannerScanQuery(void);
void* DDDFAScannerScanString(void);
void* DDDFAScannerScanStringWithRange(void);
void* DDDFAScannerScanUnicharArray(void);
void* DDDFAScannerScanUnicharArrayFragment(void);
void* DDDFAScannerSimulateState(void);
void* DDDataDetectorBuilderSetup(void);
void* DDDataDetectorSetUsesDebugSource(void);
void* DDError(void);
void* DDFastIntegerExtraction(void);
void* DDForce24HrsFormatProcessWideForExtraction(void);
void* DDFullLogFunction(void);
void* DDInitialSetup(void);
void* DDLog(void);
void* DDLogAssertionFailure(void);
void* DDLogErrD(void);
void* DDLogHandle(void);
void* DDLogWarnD(void);
void* DDLogv(void);
void* DDPatternLoaderCopyEnabledCategories(void);
void* DDPatternLoaderCopyLoadedFileURLs(void);
void* DDPatternLoaderCreateAndLoadAllFrameworkPatterns(void);
void* DDPatternLoaderCreateCache(void);
void* DDPatternLoaderCreateFromPaths(void);
void* DDPatternLoaderCreateFromPathsWithOptions(void);
void* DDPatternLoaderCreateScanner(void);
void* DDResultAddSubresult(void);
void* DDResultAddSubresultSorted(void);
void* DDResultCopyExtractedDateFromReferenceDate(void);
void* DDResultCopyExtractedDateFromReferenceDateWithLocale(void);
void* DDResultCopyExtractedStartDateEndDate(void);
void* DDResultCopyExtractedStartDateEndDateWithLocale(void);
void* DDResultCopyExtractedURL(void);
void* DDResultCopyExtractedURLWithOptions(void);
void* DDResultCopyFullAddressComponents(void);
void* DDResultCopyIMScreenNameValue(void);
void* DDResultCopyMailValue(void);
void* DDResultCopyPhoneValue(void);
void* DDResultCreate(void);
void* DDResultCreateCopy(void);
void* DDResultCreateEmpty(void);
void* DDResultCreateFromDateTimeResults(void);
void* DDResultCreateFromXMLNode(void);
void* DDResultCreateVerboseXMLDescription(void);
void* DDResultCreateVerboseXMLDescriptionFromResults(void);
void* DDResultCreateVerboseXMLRepresentation(void);
void* DDResultCreateXMLRepresentation(void);
void* DDResultCurrencyExtraction(void);
void* DDResultDateExtractionDependsOnContextTense(void);
void* DDResultExtractDayAndMonthWithSpecialDayIdentifierInYear(void);
void* DDResultExtractHourMinuteSecondCopyTimeZone(void);
void* DDResultGetCategory(void);
void* DDResultGetContextualData(void);
void* DDResultGetContextualDataForKey(void);
void* DDResultGetContextualFloat(void);
void* DDResultGetCountryCode(void);
void* DDResultGetDuration(void);
void* DDResultGetMatchedString(void);
void* DDResultGetOptionalSourceTableIndex(void);
void* DDResultGetParsecDomain(void);
void* DDResultGetParsecRawDomain(void);
void* DDResultGetParsecUUID(void);
void* DDResultGetQueryRange(void);
void* DDResultGetQueryRangeForURLification(void);
void* DDResultGetRange(void);
void* DDResultGetRangeForURLification(void);
void* DDResultGetRawValue(void);
void* DDResultGetScore(void);
void* DDResultGetSubResults(void);
void* DDResultGetSubresultWithType(void);
void* DDResultGetSubresultWithTypePath(void);
void* DDResultGetTimeOffset(void);
void* DDResultGetType(void);
void* DDResultGetValue(void);
void* DDResultHasContextualFloat(void);
void* DDResultHasProperties(void);
void* DDResultHasType(void);
void* DDResultIsDateRangeOrTimeRange(void);
void* DDResultIsEqualToUnitTestResult(void);
void* DDResultIsPartialDateRangeOrTimeRange(void);
void* DDResultIsPastDate(void);
void* DDResultIsPastDateWithLocale(void);
void* DDResultNeedsMeridianGuess(void);
void* DDResultProximitySort(void);
void* DDResultSelectBest(void);
void* DDResultSetAbsoluteRange(void);
void* DDResultSetContent(void);
void* DDResultSetContextualData(void);
void* DDResultSetContextualFloat(void);
void* DDResultSetLocaleForExtraction(void);
void* DDResultSetMatchedString(void);
void* DDResultSetScore(void);
void* DDResultSetSubResults(void);
void* DDResultSetType(void);
void* DDResultSetValue(void);
void* DDResultTimeIsApprox(void);
void* DDResultTypesAreEqual(void);
void* DDScanQueryAddLineBreak(void);
void* DDScanQueryAddSeparator(void);
void* DDScanQueryAddTextFragment(void);
void* DDScanQueryCopyRange(void);
void* DDScanQueryCreate(void);
void* DDScanQueryCreateFromString(void);
void* DDScanQueryGetFragmentMetaData(void);
void* DDScanQueryGetFragmentRange(void);
void* DDScanQueryGetNumberOfFragments(void);
void* DDScanQueryHasNoLetterBeforeNextLine(void);
void* DDScanQuerySetMetadataReleaseCallback(void);
void* DDScannerCancelScanning(void);
void* DDScannerCopyItemSetForStateAtIndex(void);
void* DDScannerCopyResults(void);
void* DDScannerCopyResultsCheckOverlap(void);
void* DDScannerCopyResultsWithOptions(void);
void* DDScannerCopyStatsDescription(void);
void* DDScannerCreate(void);
void* DDScannerCreateFromCache(void);
void* DDScannerCreateFromCacheData(void);
void* DDScannerCreateWithCacheFile(void);
void* DDScannerCreateWithFileURL(void);
void* DDScannerCreateWithLocale(void);
void* DDScannerCreateWithType(void);
void* DDScannerEnableDPReporting(void);
void* DDScannerEnableOptionalSource(void);
void* DDScannerGetCache(void);
void* DDScannerGetExtendedResults(void);
void* DDScannerGetMemoryUsed(void);
void* DDScannerGetOptions(void);
void* DDScannerHasCapabilities(void);
void* DDScannerLoadAddressBookData(void);
void* DDScannerLoaderGetIdentifierStringForScannerType(void);
void* DDScannerLoaderScannerGetTypeWithIdentifierString(void);
void* DDScannerPrepareDynamicSources(void);
void* DDScannerPurgeCaches(void);
void* DDScannerReset(void);
void* DDScannerResultCreateXMLDescription(void);
void* DDScannerScanQuery(void);
void* DDScannerScanString(void);
void* DDScannerScanStringFromConversation(void);
void* DDScannerScanStringWithContextOffset(void);
void* DDScannerScanStringWithRange(void);
void* DDScannerSetClientTables(void);
void* DDScannerSetLoadDebugInformation(void);
void* DDScannerSetLocale(void);
void* DDScannerSetOptions(void);
void* DDScannerSetProgressReportingBlock(void);
void* DDScannerSetScannerTimeout(void);
void* DDScannerSetStatsBuilder(void);
void* DDScannerShouldKeepParsecScoresBelowThreshold(void);
void* DDScannerThreadDebug(void);
void* DDSetCrashHandler(void);
void* DDShouldUseDebugHighlightForResult(void);
void* DDShouldUseLightLinksForResult(void);
void* DDSourceClear(void);
void* DDSourceGetClientSignature(void);
void* DDSourcePushFile(void);
void* DDSourcePushSharedContent(void);
void* DDSourcePushSharedData(void);
void* DDSourcePushSharedDataWithSignature(void);
void* DDSourceSetStoragePath(void);
void* DDStampContextDestroy(void);
void* DDStampContextFillInWithTypeString(void);
void* DDSuffixCreateForString(void);
void* DDTrieLookupNormalizedStringCopy(void);
void* DDURLWithPotentiallyInvalidURLString(void);
void* DDWriteFileAtPath(void);
void* DataDetectorsProximitySort(void);
void* _DDDumpTrie(void);
void* _DDDumpTrieCells(void);
void* _ZN17dd_icu_3_6__5_0_2eqERKNS_11StringPieceES2_(void);
void* u_countChar32(void);
void* u_memchr(void);
void* u_memchr32(void);
void* u_memcmp(void);
void* u_memcmpCodePointOrder(void);
void* u_memcpy(void);
void* u_memmove(void);
void* u_memrchr(void);
void* u_memrchr32(void);
void* u_memset(void);
void* u_setAtomicIncDecFunctions(void);
void* u_setMutexFunctions(void);
void* u_strCompare(void);
void* u_strCompareIter(void);
void* u_strFindFirst(void);
void* u_strFindLast(void);
void* u_strHasMoreChar32Than(void);
void* u_strcat(void);
void* u_strchr(void);
void* u_strchr32(void);
void* u_strcmp(void);
void* u_strcmpCodePointOrder(void);
void* u_strcpy(void);
void* u_strcspn(void);
void* u_strlen(void);
void* u_strncat(void);
void* u_strncmp(void);
void* u_strncmpCodePointOrder(void);
void* u_strncpy(void);
void* u_strpbrk(void);
void* u_strrchr(void);
void* u_strrchr32(void);
void* u_strrstr(void);
void* u_strspn(void);
void* u_strstr(void);
void* u_strtok_r(void);
void* u_terminateChars(void);
void* u_terminateUChar32s(void);
void* u_terminateUChars(void);
void* u_terminateWChars(void);
void* u_unescape(void);
void* u_unescapeAt(void);
void* umtx_atomic_dec(void);
void* umtx_atomic_inc(void);
void* umtx_lock(void);
void* umtx_unlock(void);
void* ustr_hashCharsN(void);
void* ustr_hashICharsN(void);
void* ustr_hashUCharsN(void);

#endif
